all: zanac_atlas zanac_map zanac_patterns zanac_script

CFLAGS = -O2
#CFLAGS = -g -O0

ATLAS_OBJS = zanac_atlas.o img.o mapscript.o nesrom.o patterns.o
MAP_OBJS = zanac_map.o img.o mapscript.o mapterp.o nesrom.o patterns.o
PATTERN_OBJS = zanac_patterns.o img.o nesrom.o patterns.o
SCRIPT_OBJS = zanac_script.o mapscript.o nesrom.o

zanac_atlas: $(ATLAS_OBJS)
	$(CC) $(LDFLAGS) -o zanac_atlas $(ATLAS_OBJS)

zanac_map: $(MAP_OBJS)
	$(CC) $(LDFLAGS) -o zanac_map $(MAP_OBJS)

zanac_patterns: $(PATTERN_OBJS)
	$(CC) $(LDFLAGS) -o zanac_patterns $(PATTERN_OBJS)

zanac_script: $(SCRIPT_OBJS)
	$(CC) $(LDFLAGS) -o zanac_script $(SCRIPT_OBJS)

clean:
	rm -f zanac_atlas zanac_map zanac_patterns zanac_script *.o

reallyclean:
	rm -f zanac_atlas zanac_map zanac_patterns zanac_script *.o *~ *.png

tidy:
	rm -f *.o

%.o: %.c
	$(CC) -c $(CFLAGS) -o $@ $<

img.o: img.h stb_image_write.h
mapscript.o: mapscript.h
nesrom.o: nesrom.h
patterns.o: patterns.h
zanac_atlas.o: img.h mapscript.h nesrom.h patterns.h
zanac_map.o: img.h mapscript.h mapterp.h nesrom.h patterns.h
zanac_patterns.o: img.h nesrom.h patterns.h
zanac_script.o: mapscript.h nesrom.h

mapscript.h: nesrom.h
mapterp.h: mapscript.h nesrom.h
patterns.h: nesrom.h
